package student.mindmap.core.model;

import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;

class EdgeCaseTest {
    @Test
    void testDeleteRootNode() {
        MindMap map = new MindMap();
        map.createNewMap("重要根节点");

        // 尝试删除根节点应失败
        map.deleteNode(map.getRoot());
        assertNotNull(map.getRoot());
        assertEquals(1, map.getAllNodes().size());
    }

    @Test
    void testFindNonexistentNode() {
        MindMap map = new MindMap();
        map.createNewMap("空导图");

        assertNull(map.findNodeById("invalid_id"));
    }

    @Test
    void testCircularReferenceProtection() {
        MindMap map = new MindMap();
        map.createNewMap("中心");

        MindMapNode nodeA = new MindMapNode("节点A");
        MindMapNode nodeB = new MindMapNode("节点B");

        map.addNode(nodeA);
        map.addNode(nodeB);
        // 建立循环引用
        nodeA.addChild(nodeB);
        nodeB.addChild(nodeA);

        // 验证系统稳定性
        assertEquals(3, map.getAllNodes().size());
    }
}